#!/bin/bash

# 设置处理日期（前一天）
dt=$(date -d '1 days ago' '+%Y-%m-%d')
echo "处理日期: $dt"

# 设置日志目录
LOG_DIR="/root/hive_logs"
# 创建日志目录
mkdir -p "$LOG_DIR"

echo "=== 开始ETL流程 ==="

# 1. ODS→DWD 增量追加
echo "步骤1: ODS→DWD 增量追加"
nohup hive -hivevar etl_dt="$dt" -f /root/hive_ods_dwd/inc_add.sql > $LOG_DIR/ods_dwd_inc_$dt.log 2>&1
if [ $? -ne 0 ]; then
    echo "ERROR: ODS→DWD 增量追加失败"
    exit 1
fi
echo "ODS→DWD 增量追加完成"

# 2. ODS→DWD 全量追加
echo "步骤2: ODS→DWD 全量追加"
nohup hive -hivevar etl_dt="$dt" -f /root/hive_ods_dwd/full_add.sql > $LOG_DIR/ods_dwd_full_$dt.log 2>&1
if [ $? -ne 0 ]; then
    echo "ERROR: ODS→DWD 全量追加失败"
    exit 1
fi
echo "ODS→DWD 全量追加完成"

# 3. DWD→DWS 明细宽表
echo "步骤3: DWD→DWS 明细宽表"
nohup hive -hivevar etl_dt="$dt" -f /root/hive_dwd_dws/dws_inc_add.sql > $LOG_DIR/dwd_dws_$dt.log 2>&1
if [ $? -ne 0 ]; then
    echo "ERROR: DWD→DWS 增量追加失败"
    exit 1
fi
echo "DWD→DWS 明细宽表完成"

# 4. DWS→ADS 客户风险视图
echo "步骤4: DWS→ADS 客户风险视图"
nohup hive -hivevar etl_dt="$dt" -f /root/hive_dwd_dws/ads_kh_risk.sql > $LOG_DIR/dws_ads_$dt.log 2>&1
if [ $? -ne 0 ]; then
    echo "ERROR: DWS→ADS 全量覆盖失败"
    exit 1
fi
echo "DWS→ADS 客户风险视图完成"

echo "=== 所有ETL任务成功完成 ==="
echo "日志文件位置: $LOG_DIR"
echo "处理日期: $dt"